import UIKit

//
@available(iOS 7.0, *)
extension QKC where AA :UIGravityBehavior {
    open func items_qk_g() -> QKC<AA,YY,ZZ, [UIDynamicItem] >{
		 self +^ self.value.items
	}

	// The acceleration for a dynamic item subject to a (0.0, 1.0) gravity vector is downwards at 1000 points per second².
    open func gravityDirection_qk_s(_ gravityDirection:  CGVector) -> QKC<AA,YY,ZZ, CGVector>{
		return link(next: gravityDirection).then_QK { $0.value.gravityDirection = gravityDirection }
	}
    open func gravityDirection_qk_g() -> QKC<AA,YY,ZZ, CGVector>{
		 self +^ self.value.gravityDirection
	}

    open func angle_qk_s(_ angle:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: angle).then_QK { $0.value.angle = angle }
	}
    open func angle_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.angle
	}

    open func magnitude_qk_s(_ magnitude:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: magnitude).then_QK { $0.value.magnitude = magnitude }
	}
    open func magnitude_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.magnitude
	}

    open func addItem_qk_f(_ item: UIDynamicItem) -> QKC<AA,YY,ZZ, UIDynamicItem>{
		 self +^ self.value.addItem(item) +^ item
	}

    open func removeItem_qk_f(_ item: UIDynamicItem) -> QKC<AA,YY,ZZ, UIDynamicItem>{
		 self +^ self.value.removeItem(item) +^ item
	}

    open func setAngle_qk_f(_ angle: CGFloat, magnitude: CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.setAngle(angle, magnitude:magnitude) +^ angle
	}

}

